package com.ruoyi.bk.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.bk.mapper.LayoutConfigMapper;
import com.ruoyi.bk.domain.LayoutConfig;
import com.ruoyi.bk.service.ILayoutConfigService;

/**
 * 页面拖拽Service业务层处理
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@Service
public class LayoutConfigServiceImpl implements ILayoutConfigService
{
    @Autowired
    private LayoutConfigMapper layoutConfigMapper;

    /**
     * 查询页面拖拽
     *
     * @param id 页面拖拽主键
     * @return 页面拖拽
     */
    @Override
    public LayoutConfig selectLayoutConfigById(Long id)
    {
        return layoutConfigMapper.selectLayoutConfigById(id);
    }

    /**
     * 查询页面拖拽列表
     *
     * @param layoutConfig 页面拖拽
     * @return 页面拖拽
     */
    @Override
    public List<LayoutConfig> selectLayoutConfigList(LayoutConfig layoutConfig)
    {
        return layoutConfigMapper.selectLayoutConfigList(layoutConfig);
    }

    /**
     * 新增页面拖拽
     *
     * @param layoutConfig 页面拖拽
     * @return 结果
     */
    @Override
    public int insertLayoutConfig(LayoutConfig layoutConfig)
    {
        return layoutConfigMapper.insertLayoutConfig(layoutConfig);
    }

    /**
     * 批量修改页面拖拽配置
     *
     * @param layoutConfigs 页面拖拽配置列表
     * @return 结果
     */
    @Override
    @Transactional
    public int batchUpdateLayoutConfig(List<LayoutConfig> layoutConfigs)
    {
        if (layoutConfigs == null || layoutConfigs.isEmpty()) {
            return 0;
        }

        int successCount = 0;
        for (LayoutConfig config : layoutConfigs) {
            // 检查是否有ID，只有有ID的配置才能更新
            if (config.getId() != null) {
                successCount += layoutConfigMapper.updateLayoutConfig(config);
            }
        }

        return successCount;
    }

    /**
     * 修改页面拖拽
     *
     * @param layoutConfig 页面拖拽
     * @return 结果
     */
    @Override
    public int updateLayoutConfig(LayoutConfig layoutConfig)
    {
        return layoutConfigMapper.updateLayoutConfig(layoutConfig);
    }

    /**
     * 批量删除页面拖拽
     *
     * @param ids 需要删除的页面拖拽主键
     * @return 结果
     */
    @Override
    public int deleteLayoutConfigByIds(Long[] ids)
    {
        return layoutConfigMapper.deleteLayoutConfigByIds(ids);
    }

    /**
     * 删除页面拖拽信息
     *
     * @param id 页面拖拽主键
     * @return 结果
     */
    @Override
    public int deleteLayoutConfigById(Long id)
    {
        return layoutConfigMapper.deleteLayoutConfigById(id);
    }
}